Portable terminals such as smart phones have become increasingly popular due to their ability to run third-party applications which are typically downloaded to the terminal from a web site for free, or upon payment of a small fee. Such applications can include games, programs that take advantage of geographical location services, educational applications, and so forth. Terminal manufacturers encourage the development of these applications by making software development tools available to software developers. Such tools may include a terminal emulator, which simulates the functionality and performance of the terminal, as well as tools for deploying, executing, debugging and sharing applications prior to the commercial release of the application. In most cases, the application is tested on the terminal itself before its release. However, terminals are commonly shipped so that applications can be deployed and executed only from approved, e.g., trusted or authorized, sources. Developers register with the manufacturer and submit their finalized applications to the web site of the manufacturer, where the applications are reviewed and approved for distribution. When a developer downloads an application to a terminal, the application is cryptographically signed with a digital signature, and the terminal verifies that the application is approved using a signature verification mechanism, before allowing the application to run.
However, the use of such authentication mechanisms in the development process can make the work of the software developer more difficult. Commonly, the authentication mechanism is a complicated and error-prone certificate-based authentication mechanism that requires the developer to manage the relationship between the terminal and their computer, which runs the software development tools. On the other hand, if the developer is granted an unrestricted ability to deploy and run applications on the terminal, this makes it easier for unauthorized applications to be loaded and run, e.g., using application side-loading, so that piracy is facilitated. Moreover, a management challenge is posed when a developer uses different computers to run software development tools for different terminals. There is a one computer-to-many terminal management challenge, a many computers-to-one terminal management challenge and a many computers-to-many terminals management challenge.